<?php
	header("content-type:text/html;charset=utf-8");
	//看一个反射机制
	class Dog{
		public $name = '小狗';
		protected $age = 6;
		private $food = '骨头';

		public function cry($sound){
			echo $this->name . ' 在 ' . $sound;
		}
	}
	echo '<pre>';
	//通过export 可以获取某个类的全部信息
	ReflectionClass::export('Dog');

	//通过反射机制实现调用cry方法. 不能使用new

//	$dog1 = new Dog();
//	$dog1->cry();
	
	//创建一个ReflectionClass对象实例
	$class = new ReflectionClass('Dog');
	//通过$class获取一个对象实例
	$dog1 = $class->newInstance();
	var_dump($dog1);
	//获取一个ReflectionMethod对象
	$cry_method =  $class->getMethod('cry');
	var_dump($cry_method);
	//这里就实现了一个反射的代理调用 
	$cry_method->invoke($dog1, '汪汪叫');
